이전 글목록 보기다음 글
ssh2026-02-28T06:49:03.295Z

SSH 설치 및 VSCode에서 SSH 설정하기

peanut2026 profilepeanut2026
ssh_image.png

SSH 설정 단계별 안내

서버 측 준비 (Linux 기준)

  1. OpenSSH 서버 설치

    • 리눅스 서버(예: Ubuntu 24.04)에서 SSH 서버가 설치되어 있어야 합니다. 아래 명령으로 OpenSSH 서버를 설치합니다:

      sudo apt update
      sudo apt install openssh-server -y

      설치 후 ssh -V를 실행해 OpenSSH 버전을 확인할 수 있습니다.

  2. SSH 서비스 실행 확인

    • SSH 서비스가 자동으로 실행되는지 확인합니다.

      sudo systemctl status ssh

      만약 서비스가 비활성화 상태라면 아래 명령으로 활성화하고 시작하세요:

      sudo systemctl enable ssh
      sudo systemctl start ssh

      이로써 서버에서 SSH 데몬(sshd)이 실행 중이어야 합니다.

  3. 서버 IP 주소 확인

    • 서버의 IP 주소를 확인합니다. 예를 들어 Ubuntu에서는 ip addr를 실행합니다:

      ip addr

      출력 예시에 나타난 inet 뒤의 주소(예: 192.168.0.52)가 SSH 접속에 사용할 서버 IP입니다.

      • macOS에서는 ifconfig 명령을 사용하거나 시스템 설정의 네트워크 정보를 확인할 수 있습니다.

      • Windows에서는 ipconfig 명령으로 IPv4 주소를 확인합니다.

  4. 방화벽 설정 (필수)

    • Ubuntu는 기본적으로 UFW 방화벽을 사용합니다. SSH(포트 22)를 허용하도록 설정해야 합니다.

      sudo ufw allow ssh         # 또는 sudo ufw allow 22/tcp


방화벽이 비활성화 상태라면 아래와 같이 활성화합니다:
bash sudo ufw enable
이 과정이 끝나면 서버의 22번 포트로 외부 접속이 가능해집니다.
- Windows 방화벽을 사용하는 경우, 인바운드 규칙에서 TCP 22번(또는 설정한 포트)을 허용해야 합니다.
- macOS에서는 시스템 환경설정 > 공유 > “원격 로그인(Remote Login)”을 활성화하면 방화벽 설정이 자동으로 처리됩니다.

클라이언트에서 SSH 접속

  1. 기본 SSH 접속 (Linux/macOS/Windows)

    • 클라이언트 PC에서 터미널(혹은 Windows PowerShell/명령 프롬프트)을 열어 아래 명령으로 서버에 접속합니다:

      ssh 사용자명@서버IP

      예: ssh pion@192.168.0.52.

      • 첫 연결 시 서버 호스트키를 신뢰할지 묻는 메시지가 나옵니다. yes를 입력하여 계속 진행합니다.

      • 이어서 서버 로그인 비밀번호를 물으면 해당 계정의 비밀번호를 입력하면 SSH 접속이 완료됩니다.

  2. 운영체제별 참고사항

    • Windows 10/11: 기본적으로 OpenSSH 클라이언트가 포함되어 있어 PowerShell이나 cmd에서 위 명령을 그대로 사용할 수 있습니다.

    • macOS/Linux: 위 명령 그대로 사용하며, macOS의 경우 터미널을 이용합니다.

    • 만약 Windows 구버전(10 미만)에서는 PuTTY 같은 SSH 클라이언트를 사용할 수 있습니다. PuTTY 사용 시 호스트 이름에 user@서버IP 형태로 입력합니다.

SSH 키 인증 설정 (권장)

  • 목적: SSH 비밀번호 방식은 보안에 취약할 수 있으므로, 공개키 기반 인증으로 비밀번호 없이 로그인하도록 설정합니다. ed25519 알고리즘이 최신 보안 수준을 갖추어 권장됩니다.

  1. SSH 키 생성 (클라이언트)

    • 클라이언트 측에서 SSH 키 페어를 생성합니다:

      ssh-keygen -t ed25519

      생성 과정에서 Enter만 계속 누르면 기본 경로(~/.ssh/id_ed25519, ~/.ssh/id_ed25519.pub)에 키가 생성됩니다.

  2. 키 파일 권한 설정

    • 생성된 .ssh 디렉토리와 키 파일의 권한을 강화합니다:

      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/id_ed25519

      권한이 올바르게 설정되지 않으면 SSH가 키 사용을 거부하므로 반드시 적용해야 합니다.

  3. 공개키를 서버로 복사

    • Linux/macOS 클라이언트: ssh-copy-id 명령으로 키를 자동 복사할 수 있습니다:

      ssh-copy-id 사용자명@서버IP

      예: ssh-copy-id pion@192.168.0.52. 비밀번호를 한 번 입력하면 공개키(id_ed25519.pub)가 자동으로 서버의 ~/.ssh/authorized_keys에 등록됩니다. (참고: Windows 11 PowerShell에서는 ssh-copy-id가 지원되지 않습니다.)

    • Windows 클라이언트: OpenSSH 클라이언트(Windows 11 포함)에서 scp 명령을 사용해 키 파일을 전송합니다:

      scp C:\Users\사용자\id_ed25519.pub 사용자명@서버IP:/home/사용자/.ssh/authorized_keys

      예: scp C:\Users\me\Desktop\test.zip pion@192.168.0.150:/home/pion/. 또한 type 명령 등으로 공개키 내용을 복사하여 서버 ~/.ssh/authorized_keys에 붙여넣을 수도 있습니다.

    • 공개키가 등록되면 클라이언트에서 다시 SSH 접속(예: ssh pion@192.168.0.52)할 때 비밀번호 없이 바로 로그인됩니다.

서버 보안 강화 설정

  1. sshd 설정 수정

    • 서버의 SSH 설정 파일(/etc/ssh/sshd_config)을 편집합니다:

      sudo nano /etc/ssh/sshd_config
    • 파일에서 다음 항목을 수정 또는 추가하여 보안을 강화합니다:

      Port 22                # (원하는 경우 기본값 22 대신 다른 포트 번호로 변경 가능)
      PasswordAuthentication no   # 비밀번호 인증 비활성화
      PermitRootLogin no           # root 계정 로그인 차단
      PubkeyAuthentication yes     # 공개키 인증 허용

      특히 PasswordAuthentication no로 설정하면 반드시 앞서 SSH 키를 등록해 두어야 비밀번호 없이 접속이 가능합니다.

  2. SSH 서비스 재시작

    • 설정 변경을 적용하려면 SSH 서비스를 재시작합니다:

      sudo systemctl restart ssh
    • 이제 비밀번호 없이 키로만 로그인할 수 있어 매우 안전한 SSH 환경이 됩니다.

접속 문제 확인 및 해결

  • 주요 원인 점검: SSH 접속 실패의 흔한 이유는 서버 SSH 서비스 미실행, 방화벽 차단, 잘못된 IP 입력, 네트워크 불일치 등입니다.

  • 진단 명령: 서버에서 sudo systemctl status sshsudo ufw status로 SSH 상태와 방화벽 상태를 확인합니다. 클라이언트에서 서버 IP로 ping 서버IP를 실행해 네트워크 연결을 테스트합니다.

(선택) 포트 변경으로 보안 강화

  • 기본 22번 포트 대신 임의의 포트(예: 2222)로 변경할 수 있습니다. 서버의 /etc/ssh/sshd_config에서 Port 2222로 수정 후 SSH를 재시작:

    sudo nano /etc/ssh/sshd_config   # Port 22 → Port 2222로 변경
    sudo systemctl restart ssh

.

  • 방화벽에도 새 포트를 허용합니다:

    sudo ufw allow 2222/tcp

.

  • 클라이언트는 아래처럼 -p 옵션으로 접속합니다:

    ssh -p 2222 사용자명@서버IP

.

VSCode에서 SSH 설정 (클라이언트)

  1. Remote-SSH 확장 설치

    • VS Code 좌측 확장(Extensions) 탭에서 Remote - SSH 확장을 찾아 설치합니다. 이 확장은 VS Code가 SSH로 원격 서버에 연결하도록 합니다.

  2. SSH 호스트 등록

    • 방법 1 (SSH 구성 파일 편집): VS Code에서 명령 팔레트(Ctrl+Shift+P) 또는 익스텐션 패널의 톱니바퀴 아이콘에서 “Open SSH Configuration File”을 선택해 ~/.ssh/config를 엽니다. 여기에 예시처럼 접속 정보를 입력합니다:

      Host p79-server       # 서버 별칭 (임의 지정)
          HostName 192.168.0.10  # 서버 IP 또는 도메인
          User p79user          # 로그인 계정
          Port 49374            # SSH 포트 (변경한 경우 기재)
          IdentityFile ~/.ssh/id_ed25519  # 사용할 개인키 경로
          IdentitiesOnly yes    # 다른 키 사용 금지

      위 예시에서는 Host p79-server라는 별칭으로 연결하며, 이에 대한 상세 의미는 아래 표를 참고하세요.

    항목

    설명

    Host

    서버별칭 (원하는 이름 지정 가능)

    HostName

    실제 서버의 IP 주소 또는 도메인명

    User

    서버 로그인 계정명

    Port

    SSH 포트 번호 (기본 22, 변경했다면 반드시 명시)

    IdentityFile

    사용할 개인키 파일 경로 (~/.ssh/id_ed25519 등)

    IdentitiesOnly

    해당 개인키만 사용 (다른 키 파일 사용 금지)

    • 방법 2 (명령 팔레트 이용): VS Code에서 Remote-SSH: Add New SSH Host 명령(Ctrl+Shift+P 입력) 실행 후 ssh 사용자명@서버IP를 입력하여 새 호스트를 등록할 수도 있습니다. 예: ssh pion@192.168.0.150.

  3. 터미널에서 접속 테스트

    • VS Code 접속 시도 전에 터미널에서 구성된 별칭으로 먼저 연결해 봅니다. 예:

      ssh p79-server

      위 명령으로 정상적으로 SSH 접속이 된다면 설정이 올바른 것입니다.

  4. VSCode에서 원격 연결

    • VS Code에서 명령 팔레트(Ctrl+Shift+P)로 Remote-SSH: Connect to Host를 실행하면, 등록한 별칭(예: p79-server)이 목록에 표시됩니다. 이를 선택하면 VS Code가 서버에 접속하여 원격 작업 환경을 엽니다.

    • 첫 연결 시 아래와 같은 메시지가 나오면 yes를 입력합니다:

      Are you sure you want to continue connecting?

      이 후 VS Code가 서버에 필요한 확장(서버 측 Agent)을 자동으로 설치합니다(첫 연결 시 1회 진행). 연결이 완료되면 VS Code 내에서 서버 파일 편집, 터미널 실행 등이 가능합니다.

각 단계가 완료되면 SSH를 통한 원격 접속 환경이 안전하게 구축됩니다. 위 과정 중 문제가 발생하면 앞서 설명한 점검 명령들을 활용하여 SSH 서비스, 방화벽, 네트워크 설정 등을 재확인하세요

Comments

Log in to comment

Loading comments...
이전 글목록 보기다음 글

당신의 이야기를 기다리고 있습니다